package com.laiyizhan.common.utils;

import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.time.DateFormatUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.io.File;
import java.util.Date;

/**
 * 文件工具类
 * Created by folie
 */
public class LyzFileUtils {

    private static final Logger log = LoggerFactory.getLogger(LyzFileUtils.class);

    /**
     * 根据路径生成文件
     *
     * @param realPath 服务器存放的真实路径
     * @return 文件的绝对路径 ${realPath}${filePath}
     */
    public static File getAbsolutePath(String realPath, String filePath) {
        File file = new File(StringUtils.join(realPath, filePath));
        log.debug("服务器保存的文件路径: {}", file.getAbsolutePath());
        return file;
    }

    /**
     * 根据上传的文件名生成随机文件名
     *
     * @param fileName 上传的件名
     * @return 服务器相对路径 /${yyyyMMddHHmmss}/${Random:6}.suffix
     */
    public static String getRelativePath(String fileName, String path) {
        String yyyyMMdd = DateFormatUtils.format(new Date(), "yyyyMMdd");
        String HHmmss = DateFormatUtils.format(new Date(), "HHmmss");
        return StringUtils.join(
                path,
                File.separator, yyyyMMdd, File.separator,
                HHmmss,
                RandomUtils.genRandomNum(6),
                fileName.substring(fileName.indexOf(".")));
    }

}
